N-dimensional affinity confluencer

ABSTRACT

An N-dimensional affinity confluencer comprises an affinity table to maintain a plurality of affinities for each of a plurality of wireless devices. A sphere of influence (SPIN) table provides an influence for determination of a confluence between affinities maintained in the affinity table. An affinity confluence determination module determines an affinity confluence between the plurality of wireless devices and an influence parameter associated with the sphere of influence (SPIN) table. An affinity confluence is determined from among a plurality of wireless devices by determining a confluence of at least two predefined affinities from among a plurality of wireless devices. A sphere of influence parameter is applied to the confluence to determine those of the plurality of wireless devices defined by an affinity confluence. The plurality of wireless devices need not be within a common communication network.

This application claims priority from U.S. Provisional Appl. No. 61/457,061 to PITT et al., entitled “N-Dimensional Affinity Confluencer,” filed Dec. 17, 2010; and from U.S. Provisional Appl. No. 61/457,145 to PITT et al., entitled “N-Dimensional Affinity Confluencer,” filed Jan. 14, 2011, the entirety of both of which are explicitly incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to telecommunications. More particularly, it relates to wireless based technologies.

2. Background of the Related Art

People perceive the universe as existence within the three (3) dimensions of space and the fourth (4^(th)) dimension of time and they generally think of themselves as “passing through” these dimensions. In other words, people generally think of space as fixed or static and think of themselves as traveling through space from one point to another. People generally think of themselves as traveling forward through time where any particular moment is simply “now” and that “now” then immediately becomes part of “the past”.

SUMMARY OF THE INVENTION

In accordance with the principles of the present invention, an N-dimensional affinity confluencer comprises an affinity table to maintain a plurality of affinities for each of a plurality of wireless devices. A sphere of influence (SPIN) table provides an influence for determination of a confluence between affinities maintained in the affinity table. An affinity confluence determination module determines an affinity confluence between the plurality of wireless devices and an influence parameter associated with the sphere of influence (SPIN) table.

In accordance with a method of determining an affinity confluence from among a plurality of wireless devices in accordance with another embodiment of the invention comprises determining a confluence of at least two predefined affinities from among a plurality of wireless devices. A sphere of influence parameter is applied to the confluence to determine those of the plurality of wireless devices defined by an affinity confluence. The plurality of wireless devices need not be within a common communication network.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the present invention become apparent to those skilled in the art from the following description with reference to the drawings:

FIG. 1 depicts the function of an exemplary N-dimensional affinity confluencer, in accordance with the principles of the present invention.

FIG. 2 depicts five (5) exemplary data structures established within the N-dimensional affinity confluencer (in this example a 5-dimensional affinity confluencer), to manage affinities, SPINs, and the identification of relationships therebetween.

FIG. 3 elaborates the juxtaposition of attractive and repulsive inducement versus receptive and projective influence, and defines several permutations of influence between wireless devices, as represented by their sphere of influence, in accordance with the principles of the present invention.

FIG. 4 depicts a wireless device user's location, in accordance with the principles of the present invention.

FIG. 5 shows an exemplary location (LOC) table, in accordance with the principles of the present invention.

FIG. 6 shows an exemplary primary matrix, in accordance with the principles of the present invention.

FIG. 7 shows an exemplary network and server architecture, in accordance with the principles of the present invention.

FIG. 8 shows an exemplary data structure used as elements within all tiers of the GeoTrove to assist with rapidly updating a SPIN's location.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1 depicts the function of an exemplary N-dimensional affinity confluencer, in accordance with the principles of the present invention.

In particular, as depicted in FIG. 1, the present invention inverts the relationship of a wireless device within space-time and instead depicts a human being's wireless device as a “personal sphere of influence” 105 (Hereafter referred to as a SPhere of INfluence or “SPIN”) transected by a virtually infinite number of “planes of interaction”. This allows the perception of potential interactions between not just the physically concrete elements of day to day life but also the many digital (i.e. virtual) elements of modern life which have little if any physically concrete representation.

A simple embodiment of an N-dimensional affinity confluencer 100 in accordance with the principles of the present invention implements several dimensions of affinity, e.g., a plurality of wireless device users' respective locations 110, a plurality of user's interest in health and fitness 114, and retailers' offerings 112. The combination of these three (3) exemplary “planes of interaction” define a specific affinity confluence 101 for a given wireless device where the location of the user of that wireless device, and their interest in health and fitness, creates an opportunity for influence.

The opportunity for influence may be a projection of influence. For example, a broadcast of a wireless device user's interest in health & fitness, in combination with the user's location, may elicit an action on the part of a member of a third dimension of affinity, in this case a retailer.

Alternatively, or additionally, the opportunity for influence may be a reception of influence; if, for example, the person had joined a health & fitness social group (opt-in) affiliated with a particular natural foods and supplements retailer, then the intersection with a fourth dimension—location—of the plurality of users provide a proximity of a wireless device user to a given retailer's outlet store (i.e., a confluence of an intersection of affinity planes of a given user with the retail affinity plane 112) might elicit some form of message from the retailer to the user of the wireless device at the affinity confluence 101 identified by the affinity confluencer 100. The proximity is preferably configurable and defined by a region in the location plane.

Note that in this description of the invention use of the word “network” is purposely avoided as the word “network” has been so overloaded and over-used that resulting undesired connotations are inevitable. Each affinity plane does not necessarily define a group of wireless devices that necessarily are in communication with one another. Rather, the affinity planes are defined by configurable parameters of wireless devices, mostly configured by the respective users, and thus each affinity plane of interaction/interest may be and likely are constantly changing.

For illustrative purposes, the present invention represents each affinity plane as flat and skewed in any of a number of different directions, but the fact of the matter is that affinity planes of interaction/interest are constantly in a state of flux, constantly rippling and vibrating with changes caused by other wireless device users and/or other spheres of influence. It's the very dynamism of plane of interaction and the transitory nature of affinity confluences, and the determination of the same by the N-dimensional affinity confluencer 100, that are a principal focus of the present invention. The N-dimensional affinity confluencer 100 automatically resolves and acts upon these highly transitory affinity confluences.

The N-dimensional affinity confluencer 100 may be implemented in an appropriate server and established at an appropriate location on a carrier or provider's wireless network.

FIG. 2 depicts five (5) exemplary data structures established within the N-dimensional affinity confluencer 100 (in this example a 5-dimensional affinity confluencer), to manage affinities, SPINs, and the identification of relationships therebetween.

In particular, as shown in FIG. 2, one (1) active plane of affinity is uniquely identified by two (2) keywords and two (2) active SPINs.

In the given example, all affinities are maintained using two (2) specific data structures: an Affinity Table 110, and a Keyword-List Table 114.

All participating SPINs are maintained using one (1) primary data structure: a SPIN Table 112.

The relationship between affinities and SPINs is managed using, e.g., two (2) additional data structures: a SPIN-List Table 116, and an Affinity-List Table 118.

Each record or row in the Affinity Table 110 includes (but is not limited to) an “Affinity ID” as the primary key, a “Keyword-List Link”, and a “SPIN-List Link”. In the given example every defined Affinity must have at least one Keyword-List entry (i.e. at least one keyword) with which to uniquely identify the Affinity; Keyword-List Link fields are preferably not allowed to be set to a TERMINATOR value. Affinities that are defined but have zero (0) associated SPINs must set the Affinity's SPIN-List Link to a TERMINATOR value 111.

Note that in this description the word “Link” is used to denote any reference/dereference mechanism used to access information from a data structure other than the data structure in which the Link resides.

Each record or row in the Keyword-List Table 114 includes (but is not limited to) a “Keyword-List ID” used as the primary key, a “Keyword”, an “Affinity Link”, and two (2) Keyword-List Link values called “Precede” and “Succeed” which are used to create a doubly-linked list of the keywords used to uniquely identify the Affinity. The Keyword field of a Keyword-List entry may be set to any representation of a keyword except the null or empty set. The Affinity Link field of a Keyword-List entry must refer back to one and only one associated Affinity Table entry; the Affinity Link fields are not allowed to be set to a TERMINATOR value. The PRECEDE and SUCCEED fields of a Keyword-List entry are also not allowed to be set to a TERMINATOR value. The PRECEDE and SUCCEED fields must always refer to an entry in the Keyword-List Table. Keyword-Lists that are comprised of one and only one (1) keyword will set the values of both PRECEDE and SUCEED to refer to that one Keyword-List entry; PRECEDE and SUCCEED will refer to or point to each other 115.

Every participating SPhere of INfluence (SPIN) is represented by one (1) and only one entry in the SPIN Table 112. Each record or row in the SPIN Table 112 includes (but is not limited to) a SPIN ID used as the primary key, miscellaneous SPIN information that may be a multitude of sub-fields some of which may actually refer to other data structures or other data sources entirely, and an Affinity-List Link. Participating SPINs for which zero (0) affinities have been identified must set the SPIN's Affinity-List Link to a TERMINATOR value 113.

Relationship or association between Affinities and SPINs is managed with the SPIN-List Table 116 and the Affinity-List Table 118. The SPIN-List Table is 116 intended to allow someone to start with one (1) entry in the Affinity Table and find all SPINs associated with that Affinity. The Affinity-List Table is intended to allow someone to start with one (1) entry in the SPIN table and find all Affinities with which the SPIN is associated.

Each record or row in the SPIN-List Table 116 includes (but is not limited to) a SPIN-List ID used as the primary key, an Affinity Link, a SPIN Link, and two (2) SPIN-List link values used to create a doubly-linked list of the SPINs associated with the Affinity. The Affinity Link and SPIN Link fields are not allowed to be set to a TERMINATOR value; entries in the SPIN-List Table are only created when a relationship between an Affinity and a SPIN is created so there will always be both a reference to an Affinity as well as a reference to a SPIN. PRECEDE and SUCCEED fields must always refer to an entry in the SPIN-List Table. SPIN-Lists that are comprised of one and only one (1) SPIN set the values of both PRECEDE and SUCEED to refer to that one SPIN-List entry; PRECEDE and SUCCEED refer to or point to each other 117.

Each record or row in the Affinity-List Table 118 includes (but is not limited to) an Affinity-List ID used as the primary key, an Affinity Link, a SPIN Link, and two (2) Affinity-List link values used to create a doubly-linked list of the Affinities with which the SPIN is associated. The Affinity Link and SPIN Link fields are not allowed to be set to a TERMINATOR value; entries in the Affinity-List Table are only created when a relationship between an Affinity and a SPIN is created so there is always both a reference to an Affinity as well as a reference to a SPIN. PRECEDE and SUCCEED fields must always refer to an entry in the Affinity-List Table. Affinity-Lists that are comprised of one and only one (1) Affinity set the values of both PRECEDE and SUCEED to refer to that one Affinity-List entry; PRECEDE and SUCCEED refer to or point to each other 119.

Persons adept in the art of data management will readily understand that there are many, many interesting ways of accessing and using information contained in the five (5) structures defined above. The tenets of this invention are not intended to encompass only the uses described above but rather any mechanism, methodology, or use which enterprising persons find for the data contained therein.

As another embodiment of this invention, location forms the lynchpin for defining N-Dimensional Affinity Confluences. In this case the principal plane of interaction transecting the sphere of influence is location. Use of location as the primary vector of every Affinity Confluence juxtaposes the exertion of influence (i.e. projection and reception) versus “Attraction” and “Repulsion” inducements to fully parameterize the bounds of the invention.

For the purposes of this invention, influence will be defined from the standpoint of a wireless device user's SPhere of INfluence (SPIN). Projection of influence specifically means that the wireless device's location and other pre-defined affinities configured by its user cause an unplanned action by someone or something else such that the action is directed at the wireless device. The wireless device's location+affinities+projected influence cause an instantaneous and unplanned action. The projection of influence can also be represented as “unprofiled” or “analytic” in the sense that it was not the result of settings or parameters of a personal profile defined by the person prior to the time of the action but rather the result of analysis of a gamut of various data that results in the instantaneous realization of influence. Reception of influence specifically means that the wireless device's location and pre-defined affinities cause an action planned by someone or something else such that the action is directed at the wireless device (i.e., subscription or opt-in). Not that the planned action is not simply scheduled to take place on a particular day at an appointed hour—rather in accordance with the principles of the present invention if a wireless device configured or otherwise associated with given affinities also satisfies specific location parameters, then that wireless device receives action/influence from another wireless device, network server, third party, or other device in communication with that wireless device. The reception of influence can be represented as “profiled” or “deterministic” in the sense that it was the result of settings or parameters of a personal profile defined by the person prior to the time of the action. There is, of course, some analysis involved in the determination of either projective or receptive influence but the fundamental difference is the existence (or non-existence) of predefined parameters.

For the purposes of this invention, Attractive Inducement and Repulsive Inducement are defined from the standpoint of elements within the planes of affinity. Elements of Interaction that prefer to garner or concentrate a wireless device user's attention upon the element exert Attractive Inducement. Elements of Interaction that prefer to dissuade a wireless device user from concentrating on the element exert Repulsive Inducement.

FIG. 3 elaborates the juxtaposition of attractive and repulsive inducement versus receptive and projective influence, and defines several permutations of influence between wireless devices, as represented by their sphere of influence, in accordance with the principles of the present invention.

In particular, as shown in FIG. 3, the invention uses communication in various forms to represent the exertion of influence and inducement regardless of whether projected or received versus attractive or repulsive. This invention contemplates the use of any appropriate mode of communication to the wireless device user, in all its many forms, if that communication involves these human senses:

Audible—depending on the sense of hearing.

Visible—depending on sight.

Tactile—depending on the sense of touch.

Olfactory—depending on the sense of smell.

This invention uses communication to represent the exertion of influence/inducement but does not limit the concept to just communication. For instance, the projection of repulsive inducement from a secure US Military complex toward a wireless device user perceived to be an intruder may, conceivably, be physical.

Yet another embodiment of the invention uses proximity as the foundation for actualizing location based N-Dimensional Affinity Confluences. For the purposes of this embodiment the proximity evaluation is designed for speed of performance during proximity evaluation processing.

FIG. 4 depicts a wireless device user's location, in accordance with the principles of the present invention.

In particular, as shown in FIG. 4, the invention reduces a wireless device's location, represented, e.g., in decimal degrees of latitude and longitude, into indices of latitude and indices of longitude within four (4) layers: 1) Primary 120: tens of degrees (˜700 statute mile resolution); 2) Secondary 121: degrees (˜70 statute mile resolution); 3) Tertiary 122: minutes (˜6000 foot resolution); and 4) Quaternary 123: seconds (˜100 foot resolution). This figuratively covers the Earth's surface with successively finer grained gridlines. Seconds of latitude and longitude yield a grid whose vertices are approximately 100 feet apart at the equator and somewhat closer together the farther away from the equator (North or South) the person is located.

Should the need arise to attain even finer granularity than seconds, a fifth (Quinary) and even sixth (Senary) layer may be added to represent 10ths of seconds (˜10 feet) and 100ths of seconds (˜12 inches).

Every time a person's location is registered the GeoTrove will save that person's identifier, location (latitude and longitude), and optimization indices in a LOC table.

FIG. 5 shows an exemplary location (LOC) table, in accordance with the principles of the present invention.

In particular, as shown in FIG. 5, the Lat and Lon values are normalized to be decimal degrees in the range −90.0 through +90.0 for Latitude and −180.0 through +180.0 for Longitude. The indices are computed thusly:

PrimaryX=int(round((Lon/10.0)−0.5)) PrimaryY=int(round((Lat/10.0)−0.5)) PrimaryZ=Altitude modulo 700 statute miles SecondaryX=int(truncate(Lon−(PrimaryX*10.0))) SecondaryY=int(truncate(Lat−(PrimaryY*10.0))) SecondaryZ=Altitude modulo 70 statute miles TertiaryX=int(truncate((Lon−((PrimaryX*10.0)+SecondaryX))*60.0)) TertiaryY=int(truncate((Lat−((PrimaryY*10.0)+SecondaryY))*60.0)) TertiaryZ=Altitude modulo 6000 feet QuaternaryX=int(truncate((Lon−((PrimaryX*10.0)+SecondaryX+(TertiaryX/60.0)))*3600.0)) QuaternaryY=int(truncate((Lat−((PrimaryY*10.0)+SecondaryY+(TertiaryY/60.0)))*3600.0)) QuaternaryZ=Altitude modulo 100 feet

Note that these equations presume that the round( ) function always rounds an “n.5” value up so that 0.5 becomes 1.0, 2.5 becomes 3.0, −3.5 becomes −3.0, etc. Some adjustments may be necessary to accommodate specific hardware architectures, operating systems, and compilers, as will be appreciated by those of skill in the art.

The intent, though, is to compute an index based on the lower left corner of the square in which the wireless device is located. The Primary square (See ‘Q’ in FIG. 4) is a 10 degree by 10 degree square. The Secondary square (See ‘R’ in FIG. 4) is a one degree by one degree square located within the Primary. The Tertiary square (See ‘S’ in FIG. 4) is a one minute by one minute square located within the Secondary. The Quaternary square (See ‘T’ in FIG. 4) is a one second by one second square located within the Tertiary.

These computations produce values in the following ranges:

−18<=PrimaryX<=18−9<=PrimaryY<=9−1<=PrimaryZ<=36 0<=SecondaryX<=9 0<=SecondaryY<=9−1<=SecondaryZ<=357 0<=TertiaryX<=60 0<=TertiaryY<=60−1<=TertiaryZ<=22,000 0<=QuaternaryX<=60 0<=QuaternaryY<=60−3<=QuaternaryZ<=1.32e06

FIG. 6 shows an exemplary primary matrix, in accordance with the principles of the present invention.

In particular, as shown in the primary matrix of FIG. 6, the GeoTrove maintains a collection of matrices. This collection of matrices always includes a matrix for the Primary indices (i.e. a “Primary Matrix”).

The primary matrix is accompanied by a PrimaryCount indicating how many wireless devices or SPIN are present.

The Primary Matrix is also accompanied by an array or list of the primary matrix elements in which wireless devices/SPIN can be found. (The list is empty if PrimaryCount is zero.)

Each element in the 36×18 Primary matrix contains: (1) a count of how many wireless devices/SPIN are present in that particular 10 deg×10 deg area; and (2) a reference to a Secondary Matrix. (The reference is NULL if count is zero).

Secondary (10×10 matrix), Tertiary (60×60), and Quaternary (60×60) matrices are allocated, maintained, and eliminated as needed to manage GeoTrove memory use.

Each Secondary Matrix is accompanied by a SecondaryCount indicating how many wireless devices/SPIN are present in that 10 deg×10 deg area.

Each Secondary Matrix is also accompanied by an array or list of the secondary matrix elements in which wireless devices/SPIN can be found. (The list is empty if its SecondaryCount is zero.)

Each element in a 10×10 Secondary matrix contains: (1) a count of how many wireless devices/SPIN are present in that particular 1 deg×1 deg area; and (2) a reference to a Tertiary Matrix. (The reference will be NULL if the count is zero.)

Each Tertiary Matrix is accompanied by a TertiaryCount indicating how many wireless devices/SPIN are present in that 1 deg×1 deg area.

Each Tertiary Matrix is also accompanied by an array or list of the tertiary matrix elements in which wireless devices/SPIN can be found. (The list is empty if its TertiaryCount is zero.)

Each element in a 60×60 Tertiary matrix contains: (1) a count of how many wireless devices/SPIN are present in that particular 1 minute×1 minute area; and (2) a reference to a Quaternary Matrix. (The reference is NULL if count is zero.)

Each Quaternary Matrix is accompanied by a QuaternaryCount indicating how many wireless devices/SPIN are present in that 1 min×1 min area.

Each Quaternary Matrix is also accompanied by an array or list of the quaternary elements in which wireless devices/SPIN can be found. (The list is empty if QuaternaryCount is zero.)

Each element in a 60×60 Quaternary matrix contains: (1) a count of how many wireless devices/SPIN are present in that particular 1 second×1 second area; and (2) an array or list of wireless device/SPIN Identifiers that are present in the 1 sec×1 sec area. (The list is empty if count is zero.)

The evaluation of ‘Z’ axis differences are preferably not managed in a matrix structure but rather are evaluated in near real-time as a simple difference of like Z values (i.e. primary, secondary, tertiary, etc.). If the absolute value of the computed Z-difference (i.e. delta Z) is within the defined vertical bounds of proximity, then proximity has been successfully established. The same kind of approaching or retreating event (described in more detail later in this disclosure) results if the delta Z grew or shrank because a wireless device user was, e.g., riding an elevator, or climbing stairs within a building, even if the lateral X and Y components stayed well within the bounds of a predefined or configured proximity.

This four (4) tier data structure makes it possible for the GeoTrove to rapidly identify all of the wireless devices/SPIN in a predefined or preconfigured close proximity to an Affinity Confluence so that Influence and Inducement are resolved in a timely manner.

Proximity may be a configured reference value, e.g., defined in terms of hundreds of feet, thousands of feet, tens of miles, or hundreds of miles. The GeoTrove is able to rapidly identify which wireless devices/SPIN meet the criteria. The broader the defined proximity value, the longer it takes the GeoTrove to send all the notifications due to latencies imposed by the communication media.

The “Time Tag” element of each row in the LOC table (e.g., as shown in FIG. 5) is specifically intended to allow the quantification and actualization of time as one of the many affinity planes (or planes of interaction) that transect all SPheres of INfluence (SPINs). The confluence of time and location plus many other potential affinity planes of interaction give each wireless device the ability to quantify when it authorizes to either project or receive influence, or when it authorizes to be subject either to attractive or repulsive inducement. In this way particular affinity confluences may be scheduled in the N-dimensional affinity confluencer 100 for particular hours during the day or particular days of the week.

Similarly, an affinity confluence of location and business interests or a confluence of location and interests in art (or politics or music or whatever) that is typically not temporally constrained could be scheduled NOT to exert influence or react to inducement during a specific timeframe (e.g. for instance during a vacation of a particular wireless device user).

Proximity lends itself quite well to providing life enhancing service to wireless device users without unduly compromising privacy of information thereon because proximity notifications reveal neither the location of the wireless device receiving the notification, nor the person operating the wireless device to whom the notification refers. The GeoTrove certainly maintains as precise a location for every participating wireless device/SPIN as it is able to acquire, but the GeoTrove is intended to run inside a secure environment and reveal as little about the actual location(s) of the participants as is practical for any particular application or service. This simple fact makes proximity an excellent mechanism with which to actualize location based N-Dimensional Affinity Confluences in the N-dimensional affinity confluencer 100.

Primary facets of that actualization are proximity events. There are, e.g., two (2) principal proximity events about which some type of notification would be sent: (1) An Approaching event (i.e., a distance between evaluees is reducing); or (2) A Retreating event (i.e., a distance between evaluees is increasing).

Proximity events can be parameterized to even multiples of the base unit of measure for each of the four (4) to six (6) levels of accuracy/fidelity that the GeoTrove uses to track location data. If, for example, the GeoTrove provides four (4) levels of fidelity, then proximity events may be keyed to, e.g., even multiples of ˜700 statute miles, even multiples of ˜70 statute miles, even multiples of ˜6000 feet, and even multiples of ˜100 feet. Some of these overlapping fidelities clearly match, in the detail.

In yet another embodiment of the invention, the GeoTrove uses the lowest level of fidelity (i.e., the most coarse granularity) of matrix with which to satisfy any proximity event detection. So, for example, if a proximity event were parameterized as 12,000 feet, then the GeoTrove uses an even multiple of ‘2’ against the Tertiary Matrix rather than an even multiple of 120 against the Quaternary Matrix. This is performed as an optimization for proximity event evaluations.

An alternate form of such an evaluation parameterizes the numeric value at which the fidelity of proximity events gets “rounded up” to provide nearly the same level of fidelity as was requested by the wireless device while providing the maximum performance possible (i.e. minimum evaluation time duration).

The GeoTrove includes configurable and parameterized hysteresis so that if the wireless device stimulating the proximity event, e.g., takes a track that skirts the edge of the proximity boundary, then the wireless device to which the event notification(s) is sent doesn't get barraged with the digital equivalent of “proximity SPAM”. As such a wireless device stimulating a proximity event needs to approach (or retreat) a certain distance past the notification threshold before it would be possible to generate the opposite form of proximity notification.

In accordance with another embodiment of the present invention, the method or mechanism constantly re-computes, within the bounds of any particular element within the proximity matrix, an indication of that node's current “Affinity-Vector”. The Affinity-Vector is simply a reference from each proximity matrix element to the single Affinity entry (See FIG. 2) that is represented within that proximity matrix element in the greatest numbers. If, for example, there were 40 wireless devices in a particular Quaternary node (i.e. ˜100 ft resolution) and 25 of them are associated with an “Alaska Sport Fishing” affinity plane, where no other affinity to which those 40 wireless devices are associated totaled more than 7 or 8 wireless devices, then the Affinity-Vector for that quaternary node is a link to the “Alaska Sport Fishing” affinity plane. A key point, with regard to a node's affinity-vector, is that the affinity-vector is computed specifically for the purposes of manifesting attractive or repulsive inducement.

FIG. 7 shows an exemplary network and server architecture, in accordance with the principles of the present invention.

In particular, as shown in the network and server architecture of FIG. 7, the different facets of the current invention (i.e. the Adapter Layer 130, the GeoTrove Layer 131, the Analytics & Affinity Layer 132, and a Value-Add Function Layer 133) are depicted such that the current invention demonstrates how each is related to and connected with the others. The Adapter layer 130 manages the multitude of interfaces with external entities (constituted both by SPINs and by elements of interaction) so as to exchange both location and pertinent other information with a subset of the N-Dimensional Confluencer layers. The GeoTrove layer 131 maintains the structures described in FIGS. 4, 5, and 6. The GeoTrove layer 131 exchanges pertinent information and some location events with the Analytics & Affinity Layer 132 and the Value-Add Function Layer 133. The Analytics & Affinity layer 132 maintains the structures described in FIGS. 2 and 3. The Analytics & Affinity Layer 132 exchanges pertinent information and affinity events with the GeoTrove Layer 130 and the Value-Add Function Layer 133. The Value-Add Function Layer 133 maintains structures whose purpose is to combine and translate location events and affinity events into services (i.e. information and actions) valuable to both SPINs and elements of interaction.

To demonstrate the specific mechanics of this invention, one use case—a single embodiment of the present invention—will herein be described in detail:

The owner of charter fishing boat named “Orca” operating out of Ketchikan, Ak., uses his desktop computer (stationary IP communication) to subscribe to a “Charter Assist” service provided by the Network Xypoint Location Service Agent (NXLSA), a part of the Value-Add Functions Layer 133. The subscription charges a small monthly recurring fee to a credit card designated by the Orca's owner. The web pages hosted by the NXLSA are exposed to the public via proxy within the Adapter Layer 130.

The nature of NXLSA “Charter Assist” service is to help charter owners find persons in their vicinity interested in participating in the type of charter trips they offer. In this case, during the subscription process, the Orca's owner selects “Fishing” as the primary charter service and then adds “salmon” and “halibut” as secondary affinity qualifiers. These are specific embodiments of two aspects of the current invention but the invention isn't limited to just those examples of service type and sub-type.

NXLSA's service also allows the owner to interactively adjust charter fees in near-realtime via smartphone (mobile IP communication) or cellular phone (cellular communication) to help the owner attempt to charter a full complement of fisherman for every trip. These are specific embodiments of two aspects of the current invention but the invention isn't limited to just these two (2) examples of technology.

In addition, the NXSLA service allows the Orca's owner to designate a number of potential location sources or technologies with which to track the Orca's current location. The Orca's owner knows that he'll always be captaining Orca during the charter fishing trips and so during the subscription process he indicates that the Orca's location can be attained via “Cellular Phone” and proceeds to list the make & model of his cell phone, the carrier with whom he has subscribed for cellular service, and his cellular phone number. The Orca's owner also indicates that his cell phone is GPS capable (i.e. contains a GPS receiver with which the cell phone can locate itself) and that he prefers NXLSA to get his location via the GPS capability of his cell phone. The Orca's owner is prompted, during the subscription process, to download a handset application compatible with his cell phone. After successfully installing the handset application, the handset application auto-starts and asks the Orca's owner if he'd like to enable his cell phone's GPS capability. The handset application also asks the Orca's owner to designate the frequency at which the location of his cell phone will be reported. The Orca's owner selects “yes” and “every 60 minutes”. Consequently, the handset application enables the GPS receiver, reports the cell phone's current location, and then goes into background operation mode waiting for 60 minutes to expire. At that time the Orca's owner's cell phone begins to report its location every hour. This is a specific embodiment of one aspect of the current invention but the invention is not limited to just this one example of location technology and methodology.

The NXLSA's “Charter Assist” service registers the Orca's owner with the Analytics & Affinity Layer 132 for affinities associated with CHARTER && FISHING && [SALMON II HALIBUT]. The Affinity Processors will search the Keyword-List Table (see FIG. 2114) for both CHARTER+FISHING+SALMON and CHARTER+FISHING+HALIBUT. If both can be found then the Affinity Processors proceed to SPIN registration for the Orca's owner. If either CHARTER+FISHING+SALMON or CHARTER+FISHING+HALIBUT cannot be found then either one or both combinations will be created in the Keyword-List Table 114 and saved in the Affinity Table 110 with a newly created Affinity ID. The Affinity Processors will look for the Orca's owner in the SPIN Table 112. If not found then a new SPIN Table entry will be created for the Orca's owner, two new entries in the Affinity-List Table 118 will be created—one for CHARTER+FISHING+SALMON and another for CHARTER+FISHING+HALIBUT—the two new entries in the Affinity-List Table will be linked to the Orca's owner's new SPIN record and then linked to one another. Both new entries in the Affinity-List Table will also be linked to the appropriate records in the Affinity Table 110. Lastly two (2) new entries will be added to the SPIN-List Table 116. The first will be linked to the CHARTER+FISHING+SALMON affinity record and the second will be linked to the CHARTER+FISHING+HALIBUT affinity record. Each of the two (2) new SPIN-List records will also be linked to the Orca's owner's SPIN record. Of course if the Orca's owner's SPIN record is found then the Affinity-List Table 118 will be searched for references to both the CHARTER+FISHING+SALMON affinity and the CHARTER+FISHING+HALIBUT affinity; said Affinity-List Table records will be created, if necessary, and properly linked to the related records in the Affinity Table 110 as well as causing updates to related records in the SPIN-List Table 116. If all Affinity Table 110, Keyword-List Table 114, SPIN Table 112, Affinity-List Table 118, and SPIN-List Table 116, are found and properly linked then no modifications will be made to any table. There are many possible permutations of the management of the five (5) tables described in FIG. 2. Said permutations are obvious to those skilled in the art of linked list management.

Every location report sent by the Orca's owner's cell phone is routed by the Adapter Layer 130 to the Position Processors within the GeoTrove Layer 131. The Position Processors first mark the LOC Table (see FIG. 5) record associated with the Orca's owner by negating the SPIN ID value. This marks the Orca's owner's LOC Table record as “update in progress”. If the position is reported as a latitude/longitude pair, as is the case with the Orca's owner, then the Position Process proceed directly to computing the Hash Index from the Lat/Lon pair. If the position is reported as a civic address or some other common form of location report then the Position Processors geocode the input or perform some type of translation between mapping projections in order to achieve a high accuracy Latitude/Longitude pair. The Lat/Lon pair is used to compute a multi-byte HASH index representing the specific region within the Primary 120, Secondary 121, Tertiary 122, and Quaternary 123 matrices in which the Orca's owner's cell phone is located. If Quinary and Senary tiers are also being maintained then the HASH index is extended to accommodate the additional tiers of fidelity. The HASH index is first used to determine which specific Position Processor is maintaining the data structures for the PRIMARY geographic area associated with the Lat/Lon pair. Position Processors may be hierarchically related such that ocean areas and land areas that are sparsely populated are controlled by a small set of Position Processors (potentially just a single Position Processor) whereas land areas with very large populations and significant adoption of mobile technology (e.g. Los Angeles County, Calif.) are controlled by a multitude of Position Processors. The Hierarchical relationship of the Position Processors is such that a small collection of Position Processors attain the Lat/Lon pair, compute the HASH index, look up the resource indicator for the associated Primary 120 fidelity Position Processor, and then hand off to that Position Processor. The Position Processor associated with the Primary 120 fidelity updates the PRIMARY data structures (described previously in this disclosure) and then uses the HASH index to determine which Position Processor is handling the Secondary fidelity 121 for that geographic area. The same Position Processing that is maintaining the PRIMARY data structures for the computed geographic area may be maintaining the SECONDARY data structures too. If that is the case then all higher fidelity structures (i.e. Tertiary, Quaternary, Quinary, and Senary) will also be handled by that same Position Processor and no additional handoffs will be necessary. Addition of Position Processors to maintain a given geographic area occurs first in the highest fidelity tiers (Senary for a six tier system and Quaternary for a four tier system) and only affects lower fidelity tiers (e.g. Tertiary or Secondary) when population densities and mobile technology use grows to the point where additional processing power is needed to achieve acceptable performance. Each succeeding geographic tier processes the HASH index and updates the data structures associated with that tier and then hands off to the Position Processor maintaining the next higher fidelity tier. The SPIN's record within the LOC Table isn't updated until after the highest fidelity tier has been updated. There are two (2) critical things to remember about maintaining the multi-tiered geographic location system that is one embodiment of this invention: the GeoTrove. First, that the Position Processors must put the SPIN being updated into the appropriate tier segments associated with the new location. Second, that the Position Processors must take the SPIN being updated OUT of the tier segments associated with the SPIN's previous location. The tier references saved in the SPIN's record within the LOC table isn't updated with new tier references until all tiers have been updated so that the SPINs old location can be easily and quickly erased from every tier. Only then is the HASH index decomposed & saved as new tier references within the SPIN's LOC Table entry. Finally, the SPIN ID is once again negated (thus making it a positive value once more) to remove the indication of “update in progress”.

In a related embodiment of this invention the management of the data within the GeoTrove Layer 131 for each and every tier of location fidelity (i.e. Primary, Secondary, Tertiary, Quaternary, etc.) is accomplished using doubly linked lists (see FIG. 8). Every record within the LOC table 140 (see FIG. 5) provides links into collections of element records used to keep track of SPINs within the PRIMARY tier 141, SECONDARY tier 142, TERTIARY tier 143, and QUATERNARY tier 144. The only time a SPIN's associated LOC record has NULL links to Primary, Secondary, Tertiary, and Quaternary matrix elements is if the location of that SPIN was once being monitored but is no longer being monitored. Subsets of element records may be associated with any one grid “node” within the associated matrix. Of course if there are no SPINs in that particular grid node then the count for the node is zero and the link from the grid master is NULL (as is described earlier in this disclosure). If there are one or more SPINs within this grid node then the grid master has a link into the ring of matrix elements; the specific matrix element to which the grid master links is irrelevant but is set when the first matrix element is added to the grid node and reset to a new element if the element to which the grid master has linked is deleted (i.e. moved to a different grid node). The LOC record associated with every SPIN points directly to the matrix element associated with that SPIN. To move a PRIMARY matrix element from one grid node (i.e. referred to in the following example as Grid Node “A”) to a different PRIMARY matrix grid node (i.e. referred to in the following example as Grid Node “R”), the following actions are taken:

1) NewGridPtr := GridNode[R].MatrixLink 2) OldGridPtr := LOC_Table[SPIN ID].Precord_Ptr Note: the syntax “LOC_Table[SPIN ID] was used here for convenience and is not meant to necessarily denote just a simple table index. A simple table index is certainly one embodiment of the present invention but the nomenclature is intended to represent any form of dereference of a single LOC_Table record from a collection of LOC_Table records using SPIN ID as the distinguishing criteria. 3) If (OldGridPtr→succeed == LOC_Table[SPIN ID].Precord_Ptr) then // the matrix element was pointing to itself which means there was only one (1) // matrix element in Grid Node from which the element is being moved; that Grid // Node will now be empty GridNode[A].MatrixLink := NULL else // link the matrix element that formerly preceded & succeeded the matrix element // being moved to one another to take the matrix element being moved out of the // ring OldGridPtr→precede→succeed := LOC_Table[SPIN ID].Precord_Ptr→succeed OldGridPtr→succeed→precede := LOC_Table[SPIN ID].Precord_Ptr→precede // if the GridNode[A].MatrixLink was pointing to OldGridPtr, // then GridNode[A].MatrixLink needs to be re-established. if ( GridNode[A].MatrixLink == OldGridPtr ) then GridNode[A].MatrixLink := OldGridPtr→succeed end if end if 4) If (NewGridPtr == NULL) then // the new Grid Node is empty so force it to point to the new matrix element and // then link the element to itself GridNode[R].MatrixLink := LOC_Table[SPIN ID].Precord_Ptr LOC_Table[SPIN ID].Precord_Ptr→succeed := LOC_Table[SPIN ID].Precord_Ptr LOC_Table[SPIN ID].Precord_Ptr→precede := LOC_Table[SPIN ID].Precord_Ptr else // add the new matrix element to the ring that already exists for the new Grid Node LOC_Table[SPIN ID].Precord_Ptr→precede := NewGridPtr→precede LOC_Table[SPIN ID].Precord_Ptr→succeed := NewGridPtr NewGridPtr→precede→succeed := LOC_Table[SPIN ID].Precord_Ptr NewGridPtr→precede := LOC_Table[SPIN ID].Precord_Ptr end if

The act of moving the matrix element referred to by LOC_Table[SPIN ID].Precord_Ptr (or Srecord_Ptr, or Trecord_Ptr, etc.) does not actually change the content of Precord_Ptr but rather just changes the precede & succeed links contained within the matrix element structure such that the element is threaded into a ring within another Grid Node. The specifics of finding GridNodes “A” and “R” so as to dereference the forms listed above as “GridNode[A]” and “GridNode[R]” is considered obvious to one skilled in the art of data structure maintenance and list mechanics.

All of the Orca's owner's actions set the stage for a confluence of affinities but another spin is needed in order to create the juxtaposition needed for a confluence of location, desire (i.e. receptive and projective influence), and service (i.e. attractive or repulsive interaction).

Mr. Smith, of Memphis, Tenn., has long been a fan of fishing. Mr. Smith has recently become a member of a free social networking service—offered by the NXLSA—that allows him to use his home computer to register his interests in order to find and interact with other, like-minded folks in his vicinity. In order to allow the social networking service to provide timely notification of opportunities (i.e. confluences of affinity) Mr. Smith allows the service to locate his cell phone via non-GPS means twice a day between the hours of 7:30 am and 5:30 pm, local time. Mr. Smith generally fly fishes in fresh water rivers and streams near his home but Mr. Smith is planning an Alaskan cruise to Anchorage, Ak., that starts and ends in Seattle, Wash. Mr. Smith's fishing associates have told him that salmon fishing in Alaska is the best in the world so, in preparation for his trip Mr. Smith enhances his lists of interest to add “charter” and “salmon” as a qualifiers to his declared interest in fishing. The cruise Mr. Smith has chartered advertises a service to help cruise ship passengers go on half day or full day fishing trips at some of the cruise's ports of call but the sum of the cruise ship's service fee and the charter fees advertised at various ports of call is nearly double what Mr. Smith is willing to pay to try fishing for salmon. Mr. Smith uses his home computer to further enhance his declared interest in fishing once again with “willing to travel <=10 miles” and “prefer reduced charter fee” as subordinate qualifiers to his interest in salmon fishing.

This creates the opportunity for an Affinity-Vector action trigger. The Analytics & Affinity Layer 132 builds Affinity-Vectors down through the various tiers in the GeoTrove 131 starting with the PRIMARY tier and honing the ActionIndex of each Affinity-Vector as each is refined in the better fidelity location tiers (e.g. Secondary, Tertiary, Quaternary, etc.). There are many Affinity-Vectors for every declared affinity. The Analytics & Affinity Layer 132 maintains an ActionThreshold value for every Position Processor in the GeoTrove 131 which allows ActionThresholds values to be kept very high for low fidelity location tiers like the PRIMARY and SECONDARY tiers but also allows much lower ActionThreshold values for location tiers where proximity is measured in smaller units of distance. ActionIndex values are computed in direct proportion to proximity; the closer SPINs with the same affinities are the greater the computed ActionIndex becomes. ActionIndex values rarely exceed the ActionThreshold for PRIMARY or SECONDARY tier Position Processors because the ActionThresolds are set high enough to prevent that for most areas. Exceptions occur in areas of low population density. The great majority of Actions initiated by the Analytics & Affinity Layer trigger as a result of ActionThreshold values maintained for the TERTIARY or QUATERNARY tier fidelity location tiers.

In the case of Mr. Smith, his cruise ship reached Ketchikan, Ak., at 5:00 pm AKDT. NXLSA had already detected that Mr. Smith was traveling West from Memphis, Tenn., so it temporarily increased the frequency of location determination so it could compute an appropriate delay for the “twice daily @ 7:30 am && 5:30 pm local time” location determinations stipulated by Mr. Smith. When Mr. Smith's NXLSA social networking service initiated a location determination at 5:30 pm AKDT and located him in Ketchikan the Analytics & Affinity Layer was able to refine a Charter+Fishing+Salmon AffinityVector to the TERTIARY location tier where, for Ketchikan, Ak., its AffinityIndex exceeded the 10 mile AffinityThreshold defined for that Position Processor. No action was initiated at that time, however, because of the subordinate “prefer reduced charter fee” qualifier. The next morning, when the Orca's owner received notification that one of the persons scheduled for that day's charter trip was unable to participate, Orca's owner used his cell phone to notify NXLSA that he was reducing the daily charter fee by 50% for one fisherman for that day only. This caused further refinement to the AffinityIndex value which triggered an early morning notification to both Mr. Smith and the Orca's owner asking both if they'd like to be connected. Both Mr. Smith and the Orca's owner replied “yes” so NXLSA created a conference bridge allowing Mr. Smith to arrange the details of his reduced-fee charter salmon fishing trip with the Orca's owner.

Other embodiments within the principles of the present invention are possible, including but not limited to the following types or examples of N-Dimensional Affinity Confluencers:

1) My Location+“people against speeding tickets”+cellular announcement of radar/laser detection ahead (see, e.g., Cellular Augmented Radar/Laser Detector U.S. Pat. No. 7,471,236).

2) Location of my vehicle+vehicle theft deterrence+activation of vehicle's alarm (see, e.g., Cellular Augmented Vehicle Alarm patent U.S. Pat. No. 7,825,780).

3) My Location+interest in locally broadcast, pseudo-anonymous, text communication (CB-SMS).

4) Location+advertised interest in social interaction+‘N’ element list of hobbies & interests (SMS-Roulette).

5) My Location+interest in Quisine|Theater|Sporting-Event|Retail-Offering|Childrens-Event|Street-Fair|Street-Performer+desire to participate.

6) My Location+interest in Quisine|Theater|Sporting-Event|Retail-Offering|Childrens-Event|Street-Fair|Street-Performer+desire to avoid.

7) My Location+cruise ship arrival schedule+desire to successfully secure parking.

8) My Location+Crime/Accident/Fire/HAZMAT incident+desire to avoid.

9) My Location+planned roadwork+desire to avoid.

10) My location+unplanned roadwork+desire to avoid.

11) Child's Location|Elder Parent's Location|Dependant's Location+miscellaneous event+desire to help them participate.

12) Child's Location|Elder Parent's Location|Dependant's Location+miscellaneous event+desire for them to avoid.

13) Location of preferred Band|Taco-Bus|Rave-Event|Team|Car-Club(s)+desire to participate.

14) My Location+anti-affinity+others' location+others' affinity+desire to avoid.

15) Strong affinities over an area+area advertisement.

16) Strong anti-affinities over an area+elimination of strongly unwanted area advertisements.

17) Lack of affinities over an area+area advertisement+desire to discover new things.

18) Political affinities over a region+candidates' desire to focus campaign spending.

19) My Location (or future location)+weather in an area+desire to be alerted.

20) My vehicles location+vehicle onboard computer measuring gas levels+gas stations location (ranked by price)+alert when gas level is low.

21) My vehicles location+vehicle onboard computer estimating miles left before out of gas+gas station location+alert you better get gas now.

22) My vehicles location+highway rest areas+time of continuous driving+alert rest area ahead (and how far) or better stop at this rest area.

23) My vehicles location+vehicle onboard computer measuring mileage since oil change+oil changing stations+alert when time to change oil.

While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention. 

1. An N-dimensional affinity confluencer, comprising: an affinity table to maintain a plurality of affinities for each of a plurality of wireless devices; a sphere of influence (SPIN) table to provide an influence for determination of a confluence between affinities maintained in said affinity table; and an affinity confluence determination module to determine an affinity confluence between said plurality of wireless devices and an influence parameter associated with said sphere of influence (SPIN) table.
 2. The N-dimensional affinity confluencer according to claim 1, wherein: said affinities maintained in said affinity table include attractive associations between said plurality of wireless devices.
 3. The N-dimensional affinity confluencer according to claim 1, wherein: said affinities maintained in said affinity table include repulsive associations between said plurality of wireless devices.
 4. The N-dimensional affinity confluencer according to claim 1, wherein: said affinities maintained in said affinity table include attractive and repulsive associations between said plurality of wireless devices.
 5. A method of determining an affinity confluence from among a plurality of wireless devices, comprising: determining a confluence of at least two predefined affinities from among a plurality of wireless devices; applying a sphere of influence parameter to said confluence to determine those of said plurality of wireless devices defined by an affinity confluence; wherein said plurality of wireless devices need not be within a common electrical network.
 6. The method of determining an affinity confluence from among a plurality of wireless devices according to claim 5, wherein: said affinity confluence includes an attractive association between said plurality of wireless devices.
 7. The method of determining an affinity confluence from among a plurality of wireless devices according to claim 5, wherein: said affinity confluence includes a repulsive association between said plurality of wireless devices.
 8. The method of determining an affinity confluence from among a plurality of wireless devices according to claim 5, wherein: said affinity confluence both an attractive association and a repulsive association between said plurality of wireless devices.
 9. The method of determining an affinity confluence from among a plurality of wireless devices according to claim 5, wherein: said sphere of influence parameter is location. 